package com.loong.loong.hik.api.entity.carPark;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDateTime;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import lombok.Data;
import org.hibernate.validator.constraints.Range;

/**
 * 指纹对象特征属性
 * @author jinyiang
 * @date 2023/3/21 17:34
 */
@Data
@TableName("hik_park_fingerprint")
public class HikParkFingerprint {

	/**
	 * 指纹编码（主键）
	 */
	@TableId(type = IdType.ASSIGN_ID)
	private String indexCode;

	/**
	 * 外部编码（联网编码）
	 */
	@NotBlank(message = "外部编码不能为空")
	@Size(max = 64, message = "外部编码长度不能超过64")
	private String externalIndexCode;

	/**
	 * 名称
	 */
	@NotBlank(message = "名称不能为空")
	@Size(max = 256, message = "名称长度不能超过256")
	private String cn;

	/**
	 * 父级资源编号（人员联网编码）
	 */
	@NotBlank(message = "父级资源编号不能为空")
	@Size(max = 64, message = "父级资源编号长度不能超过64")
	private String parentIndexCode;

	/**
	 * 人员ID
	 */
	@NotBlank(message = "人员ID不能为空")
	@Size(max = 64, message = "人员ID长度不能超过64")
	private String personID;

	/**
	 * 绑定的卡片ID
	 */
	@Size(max = 64, message = "绑定的卡片ID长度不能超过64")
	private String cardId;

	/**
	 * 指纹算法，1.光学，2.电容，3.其他
	 */
	private Integer fingerModel;

	/**
	 * 指纹序号，手指序号，如1-10
	 */
	@NotBlank(message = "指纹序号不能为空")
	@Size(max = 64, message = "指纹序号长度不能超过64")
	private String fingerNo;

	/**
	 * 指纹，指纹模组数据
	 */
	@NotBlank(message = "指纹不能为空")
	private String fingerprint;

	/**
	 * 使用状态，0：未使用，1：已使用
	 */
	@NotNull(message = "使用状态不能为空")
	@Range(min = 0, max = 1, message = "使用状态只能为0或1")
	private Integer useStatus;

	/**
	 * 创建时间
	 */
	@TableField(fill = FieldFill.INSERT)
	private LocalDateTime createTime;

	/**
	 * 更新时间
	 */
	@TableField(fill = FieldFill.INSERT_UPDATE)
	private LocalDateTime updateTime;

	/**
	 * 扩展信息
	 */
	@Size(max = 512, message = "扩展信息长度不能超过512")
	private String extendData;

	/**
	 * 数据状态，0：正常，-1：删除
	 */
	@NotNull(message = "数据状态不能为空")
	@Range(min = -1, max = 0, message = "数据状态只能为0或-1")
	private Integer status;

}
